#ifndef ADDFRIENDDIALOG_H
#define ADDFRIENDDIALOG_H

#include <QDialog>
#include <QWidget>
#include <QLabel>
#include <QPushButton>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QLineEdit>
#include <QScrollArea>
#include <QPoint>
#include <QScrollBar>
#include <QMouseEvent>
#include <QPainter>
#include <QPainterPath>

#include "model/data.h"

using model::UserInfo;

/********************************
 * 表示一个好友搜索的结果
 *******************************/
class FriendResultItem : public QWidget
{
    Q_OBJECT
public:
    FriendResultItem(const UserInfo& userInfo);

private:
    const UserInfo& userInfo;
    QPushButton* addBtn;
};

/********************************
 * 整个搜索好友的窗口
 *******************************/

class AddFriendDialog : public QDialog
{
    Q_OBJECT
public:
    AddFriendDialog(QWidget* parent);

    // 支持窗口拖动
    void mousePressEvent(QMouseEvent* event) override;
    void mouseMoveEvent(QMouseEvent* event) override;

    // 绘制圆角
    void paintEvent(QPaintEvent *event) override;

    // 初始化结果显示区
    void initResultArea();

    // 往窗口中新增一个好友搜索结果
    void addFriendResultItem(const UserInfo& userinfo);

    // 清空界面上所有的好友结果,用户清空搜索后执行
    void clear();

private:

    QGridLayout* glayout;
    QLineEdit* searchEdit;
    QWidget* resultWidget;  // 保存搜索好友的结果

    QPoint m_dragPosition;  // 窗口拖动
};

#endif // ADDFRIENDDIALOG_H
